package com.hongji.lms5xxcommunicator.realtime.sync;

public interface XSource {
    /** 启动内部采样（OPC 读 X → 统一坐标 → 写入环形缓冲）。幂等可重入。 */
    void start();

    /** 停止采样并释放资源。幂等可重入。 */
    void stop();

    /**
     * 在 hostNs 时刻查找最近的 X（单位：PLC 坐标，已做 invert/scale/offset）。
     * @param hostNs  帧到达的主机单调时钟（ns）
     * @param tolNs   允许的时间容差（ns）
     * @param fallbackLast 若未找到则返回该回退值（通常用“上一次有效 X”）
     */
    double nearestAtHostNs(long hostNs, long tolNs, double fallbackLast);
}
